//
//  main.m
//  C10_内存课后作业
//
//  Created by dllo on 15/10/19.
//  Copyright (c) 2015年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

//    1.	（＊＊）输入一个数组长度，动态创建数组，所有元素随机生成，输出元素中的最大值。
    
//    int n = 0;
//    int max = 0;
//    scanf("%d", &n);
//    int *p = malloc(sizeof(int) * n);
//    for (int i = 0; i < n; i++) {
//        p[i] = arc4random() % (50 - 30 + 1) + 30;
//        printf("%d ", p[i]);
//        max = max > p[i] ? max : p[i];
//    }
//    free(p);
//    p = NULL;
//    printf("%d\n", max);
    
    
    
//    2. （＊＊＊）已知一个数组20个元素(随机1到100之间包含1和100),求大于平均数的元素个数,并动态生成一个新数组保存(提示:malloc出20个元素保存)
    
//    int a[20] = {0};
//    int sum = 0;
//    int count = 0;
//    for (int i = 0; i < 20; i++) {
//        a[i] = arc4random() % 100 + 1;
//        printf("%d ", a[i]);
//        sum += a[i];
//    }
//    printf("\n");
//    float average = sum / 20;
//    printf("%.2f\n", average);
//    for (int i = 0; i < 20; i++) {
//        if (a[i] > average) {
//            count++;
//        }
//    }
//    int *p = malloc(sizeof(int) * count);
//    int *head = p;
//    for (int i = 0; i < 20; i++) {
//        if (a[i] > average) {
//            *p = a[i];
//            p++;
//        }
//    }
//    for (int i = 0; i < count; i++) {
//        printf("%d ", head[i]);
//    }
//    free(head);
//    head = NULL;
//    3. （＊＊＊＊）有一段文本，将文本中的所有单词，存放到一个字符串数组中。(要求占用内存最少)
    
    char text[] = "38888833hello39999998world987HA";
    long len = strlen(text);
    int count = 0;
    for (int i = 0 ; i < len; i++) {
        if ((text[i] >= 'A' && text[i] <= 'Z') ||(text[i] >= 'a' && text[i] <= 'z')) {
            count++;
        }
    }
    char *p = malloc(sizeof(char) * count + 1);
    char *head = p;
    for (int i = 0; i < count; i++) {
        if ((text[i] >= 'A' && text[i] <= 'Z') ||(text[i] >= 'a' && text[i] <= 'z')) {
            *p = text[i];
            p++;
        }
    }
    printf("%s\n", head);
    
    
    
    
    
    
    
    
    
    

    
    
    return 0;
}
